Лабораторная работа № 2

Компонент Memo

Компонент Memo представляет собой многострочный текстовый редактор. Его можно использовать для отображения, ввода и редактирования текста.

Текст содержится в свойстве Lines, которое представляет собой набор строк. Основные манипуляции с текстом или его частями доступны через это свойство.

Данный компонент выполняет функции большинства простых текстовых редакторов, имеет "горячие" клавиши для быстрого редактирования. Формат всего текста одинаков и определяется свойством Font.

 

Дополнительная информация

Некоторые свойства компонента Memo (указаны вместе с типами):

Свойство

Тип

Описание

BorderStyle

TBorderStyle

Определяет стиль обрамления компонента: bsNone нет обрамления; bsSingle компонент обрамляется одной линией.

HideSelection

Boolean

Если значение свойства равно False, то выделение текста сохраняется при потере фокуса ввода.

Lines

TStrings

Содержит редактируемый текст.

MaxLength

Integer

Определяет максимальную длину текстовой строки. Если имеет значение 0, длина строки не ограничена.

Modified

Boolean

Содержит значение True, если текст был изменен.

OEMConvert

Boolean

Содержит True, если необходимо перекодировать текст из кодировки MS-DOS в кодировку Windows и обратно.

ReadOnly

Boolean

Если значение свойства равно True, текст не может изменяться.

ScrollBars

TSrollStyle

Устанавливает наличие полосы прокрутки в вертикальном и горизонтальном направлениях.

type TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);

SelLength

Integer

Содержит длину выделенной части текста, измеряемую в количестве символов.

SelStart

Integer

Содержит номер первого символа выделенной части текста.

SelText

String

Содержит выделенный текст.

Text

TCaption

Текст окна в виде одной строки. Используется, если необходимо обработать строку текста или ее часть.

 

При вводе и редактировании текста пользователи, как правило, не обходятся без клавиш <Enter> и <Tab>. Однако эти же клавиши могут использоваться при передаче фокуса между объектами формы. Для определения функций указанных клавиш в приложении введены свойства WantReturn: Boolean и WantTabs: Boolean. Если эти свойства установлены в true, то нажатие клавиш <Enter> и <Tab> приводит к управлению вводом текста, если свойства установлены в false, то к передаче фокуса от одного элемента формы к другому. В этом случае для ввода управляющих символов можно воспользоваться комбинациями <Ctrl>+<Enter> и <Ctrl>+<Tab>, соответственно. Обратите внимание, что если свойство WantTabs установлено в true, то с помощью клавиатуры передать фокус такому редактору можно, а после этого отдать его другому компоненту нельзя.

Если необходимо получить доступ к тексту как к массиву символов, то для этого следует воспользоваться следующими методами:

function GetTextBuf(Buffer: Pchar; BufSize: integer): integer - копирует весь текст из Memo в Buffer;

function GetSelTextBuf(Buffer: Pchar; BufSize: integer): integer - копирует только выделенный текст из TMemo в Buffer;

procedure SetTextBuf(Buffer: PChar) - копирует текст из буфера Buffer в объект Memo;

procedure SetSelTextBuf(Buffer: PChar) - изменяет текст, выделенный в Memo, текстом, содержащимся в буфере Buffer.